The available bandwidth in a packet network, such as the Internet, is not a constant, but is continually changing due to various factors. These factors include the amount of traffic currently being transported over the network as well as the servicing time that routing points need to get packets from one node to the next within the network. Overloading the network beyond its bandwidth capability is likely to cause dropping of packets and/or unacceptable packet delays between the network input and network output. Depending on the type of data traffic being transported, certain minimum Quality of Service (QoS) needs to be provided for acceptable service. For example, in a conversational class of service, packets need to arrive at their destination within a minimum time window in order to provide a natural conversational environment. Similarly, packets containing streaming video or music need to arrive with minimum delay variance (jitter) otherwise the decoded video or music will not flow naturally and will be “jerky”. On the other hand, packets containing an email message or packets containing non-streaming music that is being downloaded can be carried in a background class of service that is less sensitive to packet delays since packet delays on such information have little, if any, perceptual effect. Knowledge of the available bandwidth at an input side of the packet network facilitates a more intelligent control of packet flows into the network, thereby maximizing QoS conformance. Thus, if the current available bandwidth is small, delay-insensitive packet flows can be held back with a higher priority given to those packet flows of data that are more delay sensitive. If the available bandwidth is large, priorities can be assigned differently. In the context handling wireless packet data traffic, knowledge of the available bandwidth facilitates rate control to signal all transmitting wireless terminals and intermediate routing/switching nodes to increase or decrease their transmission rates so as to provide all transmitting terminals with some continuing data flows such that the total bandwidth usage does not exceed the network's available bandwidth. This will also further the need to optimally use the available bandwidth.
The problem with estimating the available bandwidth is multifold. For example, the aggregate amount of time service points in the network take to route packets is an unknown as is the knowledge of the amount of traffic being carried on the network from other sources. Available bandwidth can be determined from the difference between the total capacity of the packet network (such as the Internet) and the amount of bandwidth being currently utilized. These two factors, however, can't be readily measured independently. Various prior art methodologies have been proposed for determining available bandwidth. One method, known as the “pathchirp” method, floods the network with packets until it is unable to accept any additional traffic. The traffic being inputted at point is determined to be the total current capacity of the network at that input. Disadvantageously, this method loads the network and interferes with ongoing traffic. Further, this method can lead to completely false results when two different nodes are trying to estimate the available bandwidth at the same time since each flooding traffic will appear at utilized bandwidth to the other. In another method, a first test packet is inputted into the network to join the queue for transmission followed by a second packet that must join the queue before the first packet gets processed and transmitted through the network. The delay between these packets at the receiving end as compared to the delay between these packets at the input is used as a measure of the delay currently being imparted to packets as they sojourn the network between that input and output. This will yield the utilized bandwidth of the network. Thus, in order to determine the available bandwidth, equal as noted above, to the difference between the total network capacity and the utilized bandwidth, the total network capacity is required. Although there are methods to determine the total capacity, the two algorithms in conjunction are too complex for practical use. Furthermore, this method requires that both packets enter and remain in the input queue simultaneously before the network processes the first packet. In addition to the need to know the total network capacity, this method of measuring delay is difficult to conduct since it is difficult to adjust packet timing so as to guarantee that the second packet enters the queue before the first packet is processed.